<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>srio: xsrio_dma_loopback_example.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="HTML_custom.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xlogo_bg.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">srio
   </div>
   <div id="projectbrief">Vitis Drivers API Documentation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Overview</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="globals.html"><span>APIs</span></a></li>
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="pages.html"><span>Examples</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('xsrio__dma__loopback__example_8c.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">xsrio_dma_loopback_example.c File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<div class="textblock"><p>This file demonstrates how to use xsrio driver on the Xilinx SRIO Gen2 Core. </p>
<p>The SRIO Gen2 comprised of phy, logical and transport and buffer layers. Using this IP We can generate both messaging and read/write semantics.</p>
<p>This example demonstartes how to generate SWRITE(Streaming Write) transactions on the core.</p>
<p>Inorder to test this example external loopback is required at the boardlevel Between the SRIO Tx and Rx pins.</p>
<p>H/W Requirments: Inorder to test this example at the h/w level the the SRIO Initiator Request is connected to the AXI DMA MM2S Channel and SRIO Target Request is connected to the AXI DMA S2MM Channel.</p>
<p>S/W Flow: 1) The system consists of two different memories.Processor runs this example Code in one memory and the SRIO packet is formed in another memory. 2) The SRIO Packet is framed in the Memory 3) Configure the AXI DMA MM2S source address and S2MM for Destiantion address and specify the byte count for both the channels and then start the dma. 4) Compare the Data.</p>
<pre>
MODIFICATION HISTORY:</pre><pre>Ver   Who  Date     Changes
----- ---- -------- -------------------------------------------------------
1.0   adk  16/04/14     Initial release
1.1   ms   01/23/17  Modified xil_printf statement in main function to
                     ensure that "Successfully ran" and "Failed" strings
                     are available in all examples. This is a fix for
                     CR-965028.
      ms   04/05/17  Added tabspace for return statements in functions for
                     proper documentation while generating doxygen.
1.6   adk  06/02/24     Added support for system device-tree flow.
</pre><hr/>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a5e53ebd8fd8149fde3e98bb3f6d434f2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xsrio__dma__loopback__example_8c.html#a5e53ebd8fd8149fde3e98bb3f6d434f2">XSrioDmaLoopbackExample</a> (<a class="el" href="struct_x_srio.html">XSrio</a> *InstancePtr, u16 DeviceId)</td></tr>
<tr class="memdesc:a5e53ebd8fd8149fde3e98bb3f6d434f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">XSrioDmaLoopbackExample This function does a minimal test on the <a class="el" href="struct_x_srio.html" title="The XSrio driver instance data. ">XSrio</a> device and driver as a design example.  <a href="#a5e53ebd8fd8149fde3e98bb3f6d434f2">More...</a><br/></td></tr>
<tr class="separator:a5e53ebd8fd8149fde3e98bb3f6d434f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xsrio__dma__loopback__example_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memdesc:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main function.  <a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">More...</a><br/></td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int main </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Main function. </p>
<p>This function is the main entry of the SRIO DMA Loopback test.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">None</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if tests pass<ul>
<li>XST_FAILURE if fails.</li>
</ul>
</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None </dd></dl>

<p>References <a class="el" href="xsrio__dma__loopback__example_8c.html#a5e53ebd8fd8149fde3e98bb3f6d434f2">XSrioDmaLoopbackExample()</a>.</p>

</div>
</div>
<a class="anchor" id="a5e53ebd8fd8149fde3e98bb3f6d434f2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XSrioDmaLoopbackExample </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_srio.html">XSrio</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u16&#160;</td>
          <td class="paramname"><em>DeviceId</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>XSrioDmaLoopbackExample This function does a minimal test on the <a class="el" href="struct_x_srio.html" title="The XSrio driver instance data. ">XSrio</a> device and driver as a design example. </p>
<p>The purpose of this function is to illustrate how to use the <a class="el" href="struct_x_srio.html" title="The XSrio driver instance data. ">XSrio</a> Component.</p>
<p>This function does the following:</p>
<ul>
<li>Initialize the SRIO device<ul>
<li>Initialize the DMA engine</li>
</ul>
</li>
<li>Clearing the Memory<ul>
<li>Framing the SRIO Packet in the Memory</li>
</ul>
</li>
<li>Configuring the SRIO<ul>
<li>Configuring the DMA</li>
</ul>
</li>
<li>Verifying the Data</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the instance of the <a class="el" href="struct_x_srio.html" title="The XSrio driver instance data. ">XSrio</a> driver. </td></tr>
    <tr><td class="paramname">DeviceId</td><td>is Device ID of the SRIO Gen2 Device.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-XST_SUCCESS to indicate success -XST_FAILURE to indicate failure </dd></dl>

<p>References <a class="el" href="struct_x_srio___config.html#a79e384b5dc276c5479f6c17852b5886f">XSrio_Config::BaseAddress</a>, <a class="el" href="group__srio.html#gae4e21d1e48b45bc2694bb9a62845d01a">XSrio_CfgInitialize()</a>, <a class="el" href="group__srio.html#gabc2766876577ad322e774bd96906f178">XSRIO_DIR_RX</a>, <a class="el" href="group__srio.html#ga30c7873d0765851288036067362c5b7e">XSRIO_DIR_TX</a>, <a class="el" href="group__srio.html#ga753aded6db30e1c042e7c7ee43b2a483">XSrio_GetPEType()</a>, <a class="el" href="group__srio.html#gabea6ccdc70412fa41b6d45785ff2d287">XSRIO_IS_MEMORY</a>, <a class="el" href="group__srio.html#gafce174875d087f4b3cc4713a1df5446d">XSrio_IsOperationSupported()</a>, <a class="el" href="group__srio.html#ga76df4ab1f25c693e6a16050b31756c3d">XSrio_LookupConfig()</a>, <a class="el" href="group__srio.html#ga17ddc9d36a51e2a63e6b7e8b1d6ca204">XSRIO_OP_MODE_SWRITE</a>, <a class="el" href="group__srio.html#gaceba101926e9798fa350e1d5676fd43a">XSrio_SetLCSBA</a>, <a class="el" href="group__srio.html#ga3c92d05848b754806d55eaf92d37e57e">XSrio_SetPortRespTimeOutValue</a>, and <a class="el" href="group__srio.html#ga9cb7fbc368f16113382c2a9b4556b601">XSrio_SetWaterMark()</a>.</p>

<p>Referenced by <a class="el" href="xsrio__dma__loopback__example_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
	<p class="footer">&copy; Copyright 2015-2022 Xilinx, Inc. All Rights Reserved.</p>
	<p class="footer">&copy; Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved.</p>
</div>
</body>
</html>
